package com.sumi.erp.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sumi.common.annotation.Excel;
import com.sumi.common.core.domain.BaseEntity;

/**
 * 收款单对象 finance_sale_receipt
 * 
 * @author fgf67@163.com
 * @date 2024-06-28
 */
public class FinanceSaleReceipt extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 收款单id */
    private Long id;

    /** 公司id */
    @Excel(name = "公司id")
    private Long sellerId;

    /** 公司父级id */
    @Excel(name = "公司父级id")
    private Long blocId;

    /** 单据类型id */
    @Excel(name = "单据类型id")
    private Long docTypeId;

    /** 收款人ID */
    @Excel(name = "收款人ID")
    private Long receiveWorkerId;

    /** 收款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payDate;

    /** 销售单id */
    @Excel(name = "销售单id")
    private Long saleId;

    /** 销售单明细id */
    @Excel(name = "销售单明细id")
    private Long saleDtlId;

    /** 收退款类型(1：收款，2：退款) */
    @Excel(name = "收退款类型(1：收款，2：退款)")
    private Integer collectionRefundType;

    /** 收款金额 */
    @Excel(name = "收款金额")
    private BigDecimal amount;

    /** 银行名称 */
    @Excel(name = "银行名称")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String bankAccount;

    /** 银行id */
    @Excel(name = "银行id")
    private Long sellerBankId;

    /** 客户公司名称 */
    @Excel(name = "客户公司名称")
    private String partnerName;

    /** 收款单号 */
    @Excel(name = "收款单号")
    private String paymentKey;

    /** 币种 */
    @Excel(name = "币种")
    private String currency;

    /** 币种汇率 */
    @Excel(name = "币种汇率")
    private BigDecimal currencyRate;

    /** 状态 */
    @Excel(name = "状态")
    private Integer status;

    /** 创建人id */
    @Excel(name = "创建人id")
    private Long createUid;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setSellerId(Long sellerId) 
    {
        this.sellerId = sellerId;
    }

    public Long getSellerId() 
    {
        return sellerId;
    }
    public void setBlocId(Long blocId) 
    {
        this.blocId = blocId;
    }

    public Long getBlocId() 
    {
        return blocId;
    }
    public void setDocTypeId(Long docTypeId) 
    {
        this.docTypeId = docTypeId;
    }

    public Long getDocTypeId() 
    {
        return docTypeId;
    }
    public void setReceiveWorkerId(Long receiveWorkerId) 
    {
        this.receiveWorkerId = receiveWorkerId;
    }

    public Long getReceiveWorkerId() 
    {
        return receiveWorkerId;
    }
    public void setPayDate(Date payDate) 
    {
        this.payDate = payDate;
    }

    public Date getPayDate() 
    {
        return payDate;
    }
    public void setSaleId(Long saleId) 
    {
        this.saleId = saleId;
    }

    public Long getSaleId() 
    {
        return saleId;
    }
    public void setSaleDtlId(Long saleDtlId) 
    {
        this.saleDtlId = saleDtlId;
    }

    public Long getSaleDtlId() 
    {
        return saleDtlId;
    }
    public void setCollectionRefundType(Integer collectionRefundType) 
    {
        this.collectionRefundType = collectionRefundType;
    }

    public Integer getCollectionRefundType() 
    {
        return collectionRefundType;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }
    public void setBankAccount(String bankAccount) 
    {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() 
    {
        return bankAccount;
    }
    public void setSellerBankId(Long sellerBankId) 
    {
        this.sellerBankId = sellerBankId;
    }

    public Long getSellerBankId() 
    {
        return sellerBankId;
    }
    public void setPartnerName(String partnerName) 
    {
        this.partnerName = partnerName;
    }

    public String getPartnerName() 
    {
        return partnerName;
    }
    public void setPaymentKey(String paymentKey) 
    {
        this.paymentKey = paymentKey;
    }

    public String getPaymentKey() 
    {
        return paymentKey;
    }
    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }
    public void setCurrencyRate(BigDecimal currencyRate) 
    {
        this.currencyRate = currencyRate;
    }

    public BigDecimal getCurrencyRate() 
    {
        return currencyRate;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setCreateUid(Long createUid) 
    {
        this.createUid = createUid;
    }

    public Long getCreateUid() 
    {
        return createUid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sellerId", getSellerId())
            .append("blocId", getBlocId())
            .append("docTypeId", getDocTypeId())
            .append("receiveWorkerId", getReceiveWorkerId())
            .append("payDate", getPayDate())
            .append("saleId", getSaleId())
            .append("saleDtlId", getSaleDtlId())
            .append("collectionRefundType", getCollectionRefundType())
            .append("amount", getAmount())
            .append("bankName", getBankName())
            .append("bankAccount", getBankAccount())
            .append("sellerBankId", getSellerBankId())
            .append("partnerName", getPartnerName())
            .append("paymentKey", getPaymentKey())
            .append("currency", getCurrency())
            .append("currencyRate", getCurrencyRate())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("createUid", getCreateUid())
            .toString();
    }
}
